iT邦幫忙

2021 iThome 鐵人賽

DAY 18
0

前幾天我們把購物車流程跑完了,其中有講到優惠的部份,
因此我們訂單需要新增table來儲存該內容,這樣查看訂單的時候,
才能知道該筆符合什麼樣的優惠,因此我們需要紀錄當下的優惠情況,

一樣上table結構

//訂單優惠項目
Schema::create('order_discount_item', function (Blueprint $table) {
    $table->string('id', 30)->comment('項目id');
    $table->string('order_id', 30)->comment('訂單id');
    $table->string('discount_id', 30)->comment('優惠id');
    $table->text('discount_data')->comment('成立當下的優惠資料');
    $table->integer('discount_name')->comment('優惠名稱');
    $table->integer('discount_price')->comment('折扣金額');
    $table->primary(['id']);
});

可以看出來其實跟Day14 訂單 -- 多項目結構提到的商品項目有點類似,
重點一樣在於要紀錄當下的優惠資料包含優惠名稱以及要折扣多少錢,
並且將有可能會在列表出現的欄位獨立出來,
例如一般訂單頁面需要顯示名稱跟折扣金額,
所以我們把discount_name跟discount_price獨立出來,
而不是抓取discount_data裡面的資料,這樣我們在下sql語法的時候,
就可以避免抓取太多多餘資料,

select discount_name, discount_price from `order_discount_item` where order_id =  '訂單編號'

還有就是將discount_id額外紀錄,用於優惠成果報表,
有時候會需要看到當初的總共有多少訂單有該優惠,進而統計成效,
探討優惠轉化率之類的需求,所以有必要獨立出來。


簡易的優惠功能就到這邊了,明天我們會把整個購物車以及訂單的流程跑一遍,
然後就準備跟線上金流整合。


上一篇
Day17 購物車 -- 進階應用
下一篇
Day19 訂單 -- 寫入訂單
系列文
掌握訂單與線上金流的剪不斷理還亂30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言